This description relates to operation of constrained devices such as those used for embedded applications where process updates to the devices are periodically required.
One example of a constrained device is a sensor element in security, intrusion and alarm systems installed on commercial or residential premises. Security systems often include an intrusion detection panel that is electrically or wirelessly connected to a variety of sensors. Those sensors types typically include motion detectors, cameras, proximity, heat, smoke, sensors, etc. These sensors are often implemented as constrained computing devices that is devices having substantially less persistent and volatile memory than other computing devices, sensors, etc. Currently examples of constrained devices would be those with less than about a megabyte of flash/persistent memory, and less than about 10-20 kbytes of RAM/volatile memory).
Updating firmware on such devices typically involves boot-loading that requires transmission of the entire executable code image over a communications interface even if only a portion of the code changes. Another approach involves a preemptive operating system. A commercial real-time operating system (RTOS) is often marketed with data describing RAM usage on a per-task basis using context switching.